前言
今天接續昨天的主題,繼續講我在做專題時讀到的Linux基本觀念。
六、inode number
- 檔案存取通常由檔案名稱(filename),但檔案的參數會透過 information node(簡寫為 inode)來賦予一個獨一無二的整數值,又稱 inode number(可簡寫為 i-number 或 ino),inode 用來存取檔案相關資料,例如時間戳記、擁有者、類型等參數但沒有檔名。
七、目錄與連結
- 藉由檔案的 i-number 來存取檔案有安全性上的問題,所以目錄的功能就是將檔名映射至 i-number 產生 link,當使用者藉由目錄開啟指定檔名時,Kernel 就會藉由 檔名 --> i-number --> inode,indoe 裡就有檔案相關資料。
八、行程
- 當觸發任意事件時,系統會將其定義為一個行程(process),因此每個行程將會由作業系統來進行排程,通常行程只會透過系統呼叫來請求和操作資源,在 Kernel 中,一個行程所分配到的資源與行程相關資料會儲存在行程的process descriptor(行程描述器)中。當一個行程產生,透過一個具有唯一性的正整數來識別,稱為行程識別碼(process ID,簡稱為 pid)。
九、執行緒
- 每個行程由一或多個執行緒(thread of execution,簡寫為 thread)所構成,就像是行程的最小單位,執行緒負責執行程式碼、維護行程狀態。
十、用戶與群組
- 每一個用戶(user)會給予一個獨一無二的正整數稱為用戶識別碼(user ID,簡稱為 uid),每個行程也會記錄一個 uid,以識別執行行程的用戶,且uid 0 會分配給 root 的特殊用戶,root 幾乎可以對系統做任何事情。每個用
戶可能隸屬於一個或多個群組(group,簡稱 gid),做權限的分配與管理。
參考資料
書籍 : The Linux Programming Interface國際中文版(上)